package com.wicket.okrapp.web.contorller;

import com.wicket.okrapp.biz.service.SecurityService;
import com.wicket.okrapp.biz.service.dto.req.*;
import com.wicket.okrapp.biz.service.dto.res.*;
import com.wicket.okrapp.common.ro.OkrResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@RestController
@RequestMapping("/app/security/")
public class SecurityController {

  @Autowired
  SecurityService securityService;
/**
   * D3执行同时编辑的授权对象数校验(公共)
   */
    @PostMapping("implementSimultaneouslyCanEditObjNumValidityCom")
    public OkrResult<ImplementSimultaneouslyCanEditObjNumValidityComRespDto> implementSimultaneouslyCanEditObjNumValidityCom(@RequestBody @Validated ImplementSimultaneouslyCanEditObjNumValidityComReqDto reqDTO){
    return OkrResult.success(securityService.implementSimultaneouslyCanEditObjNumValidityCom(reqDTO));
    }
/**
   * D3查询授权对象列表(公共)
   */
    @PostMapping("queryAuthorizationObjectListCom")
    public OkrResult<QueryAuthorizationObjectListComRespDto> queryAuthorizationObjectListCom(@RequestBody @Validated QueryAuthorizationObjectListComReqDto reqDTO){
    return OkrResult.success(securityService.queryAuthorizationObjectListCom(reqDTO));
    }
/**
   * D3执行对象授权鉴定(公共)
   */
    @PostMapping("implementObjectAuthorizationAuthenticateCom")
    public OkrResult<ImplementObjectAuthorizationAuthenticateComRespDto> implementObjectAuthorizationAuthenticateCom(@RequestBody @Validated ImplementObjectAuthorizationAuthenticateComReqDto reqDTO){
    return OkrResult.success(securityService.implementObjectAuthorizationAuthenticateCom(reqDTO));
    }
/**
   * D3执行获取安全参数(公共)
   */
    @PostMapping("implementObtainSafetyArgumentsCom")
    public OkrResult<ImplementObtainSafetyArgumentsComRespDto> implementObtainSafetyArgumentsCom(@RequestBody @Validated ImplementObtainSafetyArgumentsComReqDto reqDTO){
    return OkrResult.success(securityService.implementObtainSafetyArgumentsCom(reqDTO));
    }
/**
   * D3判断租户规划证书及异常(公共)
   */
    @PostMapping("judgeDetermineTenantCertificateAvailabilityAbnormalCom")
    public OkrResult<JudgeDetermineTenantCertificateAvailabilityAbnormalComRespDto> judgeDetermineTenantCertificateAvailabilityAbnormalCom(@RequestBody @Validated JudgeDetermineTenantCertificateAvailabilityAbnormalComReqDto reqDTO){
    return OkrResult.success(securityService.judgeDetermineTenantCertificateAvailabilityAbnormalCom(reqDTO));
    }
/**
   * D3判断租户规划钥匙可用
   */
    @PostMapping("judgeDetermineTenantKeyAvailability")
    public OkrResult<JudgeDetermineTenantKeyAvailabilityRespDto> judgeDetermineTenantKeyAvailability(@RequestBody @Validated JudgeDetermineTenantKeyAvailabilityReqDto reqDTO){
    return OkrResult.success(securityService.judgeDetermineTenantKeyAvailability(reqDTO));
    }
/**
   * D3执行私有化部署可用分析(公共)
   */
    @PostMapping("implementPrivatizationArrangeEmpowerAvailableCom")
    public OkrResult<ImplementPrivatizationArrangeEmpowerAvailableComRespDto> implementPrivatizationArrangeEmpowerAvailableCom(@RequestBody @Validated ImplementPrivatizationArrangeEmpowerAvailableComReqDto reqDTO){
    return OkrResult.success(securityService.implementPrivatizationArrangeEmpowerAvailableCom(reqDTO));
    }
/**
   * D3判断通用租户规划证书及异常(公共)
   */
    @PostMapping("judgeStandardDetermineTenantCertificateAvailabilityAbnormalCom")
    public OkrResult<JudgeStandardDetermineTenantCertificateAvailabilityAbnormalComRespDto> judgeStandardDetermineTenantCertificateAvailabilityAbnormalCom(@RequestBody @Validated JudgeStandardDetermineTenantCertificateAvailabilityAbnormalComReqDto reqDTO){
    return OkrResult.success(securityService.judgeStandardDetermineTenantCertificateAvailabilityAbnormalCom(reqDTO));
    }
/**
   * D3获取授权对象实例数据(公共)
   */
    @PostMapping("obtainImpowerObjectInstantiateDataCom")
    public OkrResult<ObtainImpowerObjectInstantiateDataComRespDto> obtainImpowerObjectInstantiateDataCom(@RequestBody @Validated ObtainImpowerObjectInstantiateDataComReqDto reqDTO){
    return OkrResult.success(securityService.obtainImpowerObjectInstantiateDataCom(reqDTO));
    }
}
